package com.gooluke.shorten.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 短链表
 */
@Data
@TableName("short_url")
@ToString
@Builder
public class ShortUrl implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * Leaf生成的分布式ID
     */
    @TableId("id")
    private Long id;

    /**
     * 短码(6位Base62)
     */
    @TableField("short_code")
    private String shortCode;

    /**
     * 原始URL(加密存储)
     */
    @TableField("original_url")
    private String originalUrl;

    /**
     * 创建用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 状态(1-启用 0-禁用)
     */
    @TableField("status")
    private Byte status;

    /**
     * 过期时间
     */
    @TableField("expire_time")
    private LocalDateTime expireTime;

    /**
     * 访问次数
     */
    @TableField("access_count")
    private Long accessCount;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 逻辑删除(1-是 0-否)
     */
    @TableField("is_deleted")
    private Boolean isDeleted;

}